package reactor;
//利用Mono对象，演示异步工作的原理
import reactor.core.publisher.Mono;

public class AsyncWorkTheory {
    public static void main(String[] args) {
        Mono<String> mono = Mono.just("一条短信"); //
        //模拟从另一个系统返回的Mono对象
        mono = Mono.create(monoSink -> {
            new Thread() {
                @Override
                public void run() {
                    monoSink.success("你有一条新的消息");
                }
            }.start();
        });
        //传递mono,并在work中订阅mono
        work(mono);
    }
    public static void work(Mono<String> mono){
        // 订阅mono，异步处理消息
        mono.subscribe(s-> {
            System.out.println(s);
            System.out.println("接续以后的相关工作");
        });
        System.out.println("已经订阅，坐等\n。\n。\n。");

    }

}
